﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebService
{
    /// <summary>
    /// Classe entite pour l'Actualite dans le Web Service
    /// Permet de fournir une entite serializable
    /// </summary>
    public class ActualiteEWS
    {
        public StatutEWS Statut { get; set; }
        public UtilisateurEWS Utilisateur { get; set; }
        public int nbAime { get; set; }
        public List<CommentaireUtilisateurEWS> Commentaires { get; set; }

        /// <summary>
        /// Constructeur par defaut des Actualite EWS
        /// </summary>
        public ActualiteEWS()
        {
        }

        /// <summary>
        /// Constructeur petmettant de créer l'actualite EWS a partie d'une Actualite Entity
        /// </summary>
        /// <param name="actualite">Actualite Entity</param>
        public ActualiteEWS (Entity.Actualite actualite)
        {
            this.copyFromEntity(actualite);
        }

        /// <summary>
        /// Methode permettant de copier les données d'une Actualite Entity vers une Actualite EWS
        /// </summary>
        /// <param name="actualite">Actualite Entity</param>
        public void copyFromEntity(Entity.Actualite actualite)
        {
            if (actualite.Statut != null)
                this.Statut = new StatutEWS(actualite.Statut);

            if (actualite.Utilisateur != null)
                this.Utilisateur = new UtilisateurEWS(actualite.Utilisateur);

            this.nbAime = actualite.nbAime;

            if (actualite.Commentaires != null)
            {
                Commentaires = new List<CommentaireUtilisateurEWS>();
                foreach (Entity.CommentaireUtilisateur commentaireUtilisateur in actualite.Commentaires)
                    Commentaires.Add(new CommentaireUtilisateurEWS(
                        new CommentaireEWS(commentaireUtilisateur.Commentaire),
                        new UtilisateurEWS(commentaireUtilisateur.Utilisateur)));
            }
        }
    }
}